home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
The PC-SIG Library 9
/
The PC-SIG Library on CD ROM - Ninth Edition.iso
/
1601_700
/
DISK1617
/
DISK1617.ZIP
/
ADDRBOOK.LST
< prev
next >
Wrap
File List
|
1989-11-25
|
14KB
|
309 lines
PAGE 1
11-25-89
18:33:44
Offset Data Source Line GW-BASIC Compiler Version 3.20 V2.02
0030 0006 1 GOSUB 12 : REM INITIALIZE.CONS
0047 0006 2 GOSUB 210 : REM VERIFY.DFH3.LOA
004F 0006 3 GOSUB 219 : REM OPEN.FILE
0057 0006 4 GOSUB 27 : REM DISPLAY.SCREEN
005F 0006 5 GOSUB 44 : REM SET.SOFT.KEYS
0067 0006 6 WHILE Z<>1
0078 000A 7 GOSUB 65 : REM PROCESS
0080 000A 8 WEND
0083 000A 9 SYSTEM
0089 000A 10 END
008F 000A 11 REM SUB INITIALIZE.CONS
0090 000A 12 DIM FLD$(5) 'five fields defined.
0091 0022 13 FILE$="ADDRBOOK.DSF" 'file name.
009D 0026 14 KEY.LEN=10 'key length is 10 bytes
00A9 002A 15 KEY.OFF=0 'starting at offset 0.
00B5 002E 16 MAX.REC.LEN=255 'BASIC record length constraint
00C1 0032 17 DELIMITER$=CHR$(01) 'delimiter is a CTRL-A
00D2 0036 18 X$="" 'tempy string area
00DE 003A 19 Z=0 'end of program indicator
00EA 003A 20 NAM.LEN=30 'define field maximum lengths
00F6 003E 21 ADR1.LEN=40
0102 0042 22 ADR2.LEN=40
010E 0046 23 CSZ.LEN=40
011A 004A 24 PHO.LEN=15
0126 004E 25 RETURN
012C 004E 26 REM SUB DISPLAY.SCREEN
012D 004E 27 CLS
0136 004E 28 LOCATE 3,27
0147 004E 29 PRINT "Sample DISAM Program";
015A 004E 30 LOCATE 4,12
016B 004E 31 PRINT "When a Fn key is used, it must be followed by a C/R"
017E 004E 32 LOCATE 7,19
018F 004E 33 PRINT "Name:";
01A2 004E 34 LOCATE 9,16
01B3 004E 35 PRINT "Address:";
01C6 004E 36 LOCATE 11,16
01D7 004E 37 PRINT "Address:";
01EA 004E 38 LOCATE 13,10
01FB 004E 39 PRINT "City, St. Zip:";
020E 004E 40 LOCATE 15,12
021F 004E 41 PRINT "Telephone #:";
0232 004E 42 RETURN
0238 004E 43 REM SUB SET.SOFT.KEYS
0239 004E 44 DATA "AddRec","","ChgRec","","DelRec","","GetRec","","ClrScn
","End"
023B 004E 45 KEY OFF
0243 004E 46 FOR N=1 TO 10
024F 004E 47 READ SOFTKEY$
0258 0052 48 KEY N,SOFTKEY$
0269 0056 49 NEXT N
0289 0056 50 KEY ON
0292 0056 51 ON KEY(1) GOSUB 99 : REM ADD.RECORD
029E 0056 52 KEY(1) ON
02A7 0056 53 ON KEY(3) GOSUB 183 : REM CHANGE.RECORD
PAGE 2
11-25-89
18:33:44
Offset Data Source Line GW-BASIC Compiler Version 3.20 V2.02
02B3 0056 54 KEY(3) ON
02BC 0056 55 ON KEY(5) GOSUB 196 : REM DELETE.RECORD
02C8 0056 56 KEY(5) ON
02D1 0056 57 ON KEY(7) GOSUB 140 : REM DISPLAY.RECORD
02DD 0056 58 KEY(7) ON
02E6 0056 59 ON KEY(9) GOSUB 121 : REM CLEAR.SCREEN
02F2 0056 60 KEY(9) ON
02FB 0056 61 ON KEY(10) GOSUB 94 : REM END.SESSION
0307 0056 62 KEY(10) ON
0310 0056 63 RETURN
0316 0056 64 REM SUB PROCESS
0317 0056 65 LOCATE 7,25 'position cursor
0328 0056 66 LINE INPUT X$ 'get input
033A 0056 67 IF NOT (LEN(X$)<>0) THEN 69
034A 0056 68 NAME$=X$ 'if something was entered, use it
0356 005A 69 REM END IF
0357 005A 70 LOCATE 17,25 'clear the info line
0368 005A 71 PRINT SPACE$(50)
0380 005A 72 LOCATE 9,25 'get input 4 more times
0391 005A 73 LINE INPUT X$
03A3 005A 74 IF NOT (LEN(X$)<>0) THEN 76
03B3 005A 75 ADDR1$=X$
03BF 005E 76 REM END IF
03C0 005E 77 LOCATE 11,25
03D1 005E 78 LINE INPUT X$
03E3 005E 79 IF NOT (LEN(X$)<>0) THEN 81
03F3 005E 80 ADDR2$=X$
03FF 0062 81 REM END IF
0400 0062 82 LOCATE 13,25
0411 0062 83 LINE INPUT X$
0423 0062 84 IF NOT (LEN(X$)<>0) THEN 86
0433 0062 85 CSZ$=X$
043F 0066 86 REM END IF
0440 0066 87 LOCATE 15,25
0451 0066 88 LINE INPUT X$
0463 0066 89 IF NOT (LEN(X$)<>0) THEN 91
0473 0066 90 PHONE$=X$
047F 006A 91 REM END IF
0480 006A 92 RETURN
0486 006A 93 REM SUB END.SESSION
0487 006A 94 GOSUB 227 : REM CLOSE.FILE
048F 006A 95 Z=1
049B 006A 96 SYSTEM
04A1 006A 97 RETURN
04A7 006A 98 REM SUB ADD.RECORD
04A8 006A 99 GOSUB 112 : REM EDIT.KEY.LENGTH
04B0 006A 100 GOSUB 117 : REM BUILD.RECORD
04B8 006A 101 FUNC$="A" 'add action
04C4 006E 102 REC$=TMP$ 'input record
04D0 0076 103 GOSUB 232 : REM ACCESS.DFH3
04D8 0076 104 IF NOT (REC$="2") THEN 108
04E9 0076 105 LOCATE 17,25 'display error
04FA 0076 106 PRINT "Record already exists ";
050D 0076 107 GOTO 109 : REM ELSE
PAGE 3
11-25-89
18:33:44
Offset Data Source Line GW-BASIC Compiler Version 3.20 V2.02
0511 0076 108 GOSUB 121 : REM CLEAR.SCREEN
0519 0076 109 REM END IF
051A 0076 110 RETURN
0520 0076 111 REM SUB EDIT.KEY.LENGTH
0521 0076 112 IF NOT (LEN(NAME$)<KEY.LEN) THEN 114
053C 0076 113 NAME$=NAME$+SPACE$(KEY.LEN-LEN(NAME$))
056A 0076 114 REM END IF
056B 0076 115 RETURN
0571 0076 116 REM SUB BUILD.RECORD
0572 0076 117 TMP$=NAME$+DELIMITER$+ADDR1$+DELIMITER$+ADDR2$+DELIMITER$
05AC 0076 118 TMP$=TMP$+CSZ$+DELIMITER$+PHONE$+DELIMITER$
05DB 0076 119 RETURN
05E1 0076 120 REM SUB CLEAR.SCREEN
05E2 0076 121 LOCATE 07,25
05F3 0076 122 PRINT SPACE$(NAM.LEN)
0610 0076 123 NAME$=""
061C 0076 124 LOCATE 09,25
062D 0076 125 PRINT SPACE$(ADR1.LEN)
064A 0076 126 ADDR1$=""
0656 0076 127 LOCATE 11,25
0667 0076 128 PRINT SPACE$(ADR2.LEN)
0684 0076 129 ADDR2$=""
0690 0076 130 LOCATE 13,25
06A1 0076 131 PRINT SPACE$(CSZ.LEN)
06BE 0076 132 CSZ$=""
06CA 0076 133 LOCATE 15,25
06DB 0076 134 PRINT SPACE$(PHO.LEN)
06F8 0076 135 PHONE$=""
0704 0076 136 LOCATE 17,25
0715 0076 137 PRINT SPACE$(50)
072D 0076 138 RETURN
0733 0076 139 REM SUB DISPLAY.RECORD
0734 0076 140 GOSUB 112 : REM EDIT.KEY.LENGTH
073C 0076 141 FUNC$="G"
0748 0076 142 REC$=NAME$+SPACE$(MAX.REC.LEN-LEN(NAME$)) 'send a 255 byte
field
0778 0076 143 GOSUB 232 : REM ACCESS.DFH3
0780 0076 144 IF NOT (REC$="1") THEN 148
0791 0076 145 LOCATE 17,25
07A2 0076 146 PRINT "Record not found ";
07B5 0076 147 GOTO 156 : REM ELSE IF
07B9 0076 148 IF NOT (REC$="3") THEN 153
07CA 0076 149 GOSUB 121 : REM CLEAR.SCREEN
07D2 0076 150 LOCATE 17,25
07E3 0076 151 PRINT "You have reached the end of the file ";
07F6 0076 152 GOTO 156 : REM ELSE
07FA 0076 153 GOSUB 121 : REM CLEAR.SCREEN
0802 0076 154 GOSUB 159 : REM PARSE.RECORD
080A 0076 155 GOSUB 171 : REM DISPLAY.FIELDS
0812 0076 156 REM END IF
0813 0076 157 RETURN
0819 0076 158 REM SUB PARSE.RECORD
081A 0076 159 FOR I=1 TO 5
0826 0076 160 J=INSTR(1,REC$,DELIMITER$)
PAGE 4
11-25-89
18:33:44
Offset Data Source Line GW-BASIC Compiler Version 3.20 V2.02
0842 007A 161 FLD$(I)=MID$(REC$,1,J-1)
087A 007E 162 REC$=MID$(REC$,J+1)
08A0 007E 163 NEXT
08C3 007E 164 NAME$=FLD$(1)
08CF 007E 165 ADDR1$=FLD$(2)
08DB 007E 166 ADDR2$=FLD$(3)
08E7 007E 167 CSZ$=FLD$(4)
08F3 007E 168 PHONE$=FLD$(5)
08FF 007E 169 RETURN
0905 007E 170 REM SUB DISPLAY.FIELDS
0906 007E 171 LOCATE 7,25
0917 007E 172 PRINT NAME$;
092A 007E 173 LOCATE 9,25
093B 007E 174 PRINT ADDR1$;
094E 007E 175 LOCATE 11,25
095F 007E 176 PRINT ADDR2$;
0972 007E 177 LOCATE 13,25
0983 007E 178 PRINT CSZ$;
0996 007E 179 LOCATE 15,25
09A7 007E 180 PRINT PHONE$;
09BA 007E 181 RETURN
09C0 007E 182 REM SUB CHANGE.RECORD
09C1 007E 183 GOSUB 112 : REM EDIT.KEY.LENGTH
09C9 007E 184 GOSUB 117 : REM BUILD.RECORD
09D1 007E 185 FUNC$="P"
09DD 007E 186 REC$=TMP$
09E9 007E 187 GOSUB 232 : REM ACCESS.DFH3
09F1 007E 188 IF NOT (REC$="1") THEN 192
0A02 007E 189 LOCATE 17,25
0A13 007E 190 PRINT "Record not found ";
0A26 007E 191 GOTO 193 : REM ELSE
0A2A 007E 192 GOSUB 121 : REM CLEAR.SCREEN
0A32 007E 193 REM END IF
0A33 007E 194 RETURN
0A39 007E 195 REM SUB DELETE.RECORD
0A3A 007E 196 GOSUB 112 : REM EDIT.KEY.LENGTH
0A42 007E 197 FUNC$="D"
0A4E 007E 198 REC$=NAME$
0A5A 007E 199 IF NOT (LEN(REC$)<>0) THEN 207
0A6A 007E 200 GOSUB 232 : REM ACCESS.DFH3
0A72 007E 201 IF NOT (REC$="1") THEN 205
0A83 007E 202 LOCATE 17,25
0A94 007E 203 PRINT "Record not found ";
0AA7 007E 204 GOTO 206 : REM ELSE
0AAB 007E 205 GOSUB 121 : REM CLEAR.SCREEN
0AB3 007E 206 REM END IF
0AB4 007E 207 REM END IF
0AB5 007E 208 RETURN
0ABB 007E 209 REM SUB VERIFY.DFH3.LOA
0ABC 007E 210 DEF SEG=&H0012
0AC5 007E 211 X=PEEK(&H0)
0ADB 0082 212 DEF SEG
0AE1 0082 213 IF NOT (X<>234) THEN 216
0AF2 0082 214 PRINT "DISAM File Handler is not loaded."
PAGE 5
11-25-89
18:33:44
Offset Data Source Line GW-BASIC Compiler Version 3.20 V2.02
0B05 0082 215 STOP
0B0B 0082 216 REM END IF
0B0C 0082 217 RETURN
0B12 0082 218 REM SUB OPEN.FILE
0B13 0082 219 FUNC$="F" 'insure that the buffer is avai
lable
0B1F 0082 220 REC$=" "
0B2B 0082 221 GOSUB 232 : REM ACCESS.DFH3
0B33 0082 222 FUNC$="O" 'and then open the file
0B3F 0082 223 REC$=FILE$+""
0B53 0082 224 GOSUB 232 : REM ACCESS.DFH3
0B5B 0082 225 RETURN 'assume a "0" return-code
0B61 0082 226 REM SUB CLOSE.FILE
0B62 0082 227 FUNC$="C"
0B6E 0082 228 REC$=" "
0B7A 0082 229 GOSUB 232 : REM ACCESS.DFH3
0B82 0082 230 RETURN 'assume a "0" return-code
0B88 0082 231 REM SUB ACCESS.DFH3
0B89 0082 232 ERR.F$=FUNC$ 'Store stuff for possible error
0B95 0086 233 ERR.R$=REC$
0BA1 008A 234 DEF SEG=&H0012 'point SEG addr to DISAM epa
0BAA 008A 235 DFH3=&H0
0BB6 008E 236 CALL ABSOLUTE (FUNC$,REC$,DFH3)
0BD0 008E 237 DEF SEG
0BD6 008E 238 IF ERR.F$="F"THEN RETURN 'do not edit the FREE function
0BED 008E 239 IF NOT (REC$="9") THEN 245
0BFE 008E 240 PRINT "Unexpected response from DFH3"
0C11 008E 241 'process internal errors here
0C12 008E 242 PRINT "FUNC= ";ERR.F$ 'also display what was sent
0C2D 008E 243 PRINT "REC= ";ERR.R$ 'to DISAM to help debug
0C48 008E 244 STOP
0C4E 008E 245 REM END IF
0C4F 008E 246 RETURN
0C55 008E 247 REM END PROGRAM
0C56 008E
1039 008E
50449 Bytes Available
47316 Bytes Free
0 Warning Error(s)
0 Severe Error(s)
Start Stop Length Name Class
00000H 01038H 01039H ADDRBOOK_CODE BC_CODE
01040H 0A063H 09024H CSEG CODESG
0A070H 0A070H 00000H SHELL CODESG
0A070H 0A070H 00000H CODE CODE
0A070H 0A27FH 00210H BC_ICN_CODE INIT_CODE
0A280H 0A2C4H 00045H BC_IDS_CODE INIT_CODE
0A2D0H 0A396H 000C7H INIT_CODE INIT_CODE
0A3A0H 0B191H 00DF2H DSEG DATASG
0B192H 0B1B9H 00028H PSEUDOCOMMON DATASG
0B1C0H 0B1C0H 00000H COMMON BLANK
0B1C0H 0B1C0H 00000H CONST CONST
0B1C0H 0B1C0H 00000H DATA DATA
0B1C0H 0B24DH 0008EH BC_DATA BC_VARS
0B24EH 0B24EH 00000H BC_FT BC_SEGS
0B250H 0B45FH 00210H BC_CN BC_SEGS
0B460H 0B4A4H 00045H BC_DS BC_SEGS
0B4B0H 0B6AFH 00200H STACK STACK
Origin Group
0A3A:0 DGROUP
Program entry point at 0000:0030